package com.hanxing.kxcharge.module.operations.controller.admin.station.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 站点信息新增/修改 Request VO")
@Data
public class StationSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11115")
    private Long id;

    @Schema(description = "运营商id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3542")
    @NotNull(message = "运营商id不能为空")
    private Long orgId;

    @Schema(description = "电站名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "电站名称不能为空")
    private String stationName;

    @Schema(description = "国家code")
    private Long countryCode;

    @Schema(description = "省code")
    private String provinceCode;

    @Schema(description = "市code")
    private String cityCode;

    @Schema(description = "区code")
    private String areaCode;

    @Schema(description = "镇级code")
    private String townCode;

    @Schema(description = "省市区中文名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "省市区中文名不能为空")
    private String areaCodeName;

    @Schema(description = "地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "地址不能为空")
    private String address;

    @Schema(description = "服务电话")
    private String serviceTel;

    @Schema(description = "电站类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "电站类型不能为空")
    private Boolean stationType;

    @Schema(description = "电站状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "电站状态不能为空")
    private Boolean stationStatus;

    @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "经度不能为空")
    private BigDecimal stationLng;

    @Schema(description = "纬度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "纬度不能为空")
    private BigDecimal stationLat;

    @Schema(description = "建设场所", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "建设场所不能为空")
    private Boolean construction;

    @Schema(description = "电站位置（地上、地下）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "电站位置（地上、地下）不能为空")
    private Boolean stationAddress;

    @Schema(description = "可用电容")
    private String capacitance;

    @Schema(description = "分润设置", example = "2")
    private String shareType;

    @Schema(description = "是否收取占用费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否收取占用费不能为空")
    private Boolean isOccupationCost;

    @Schema(description = "停车免费时间")
    private String parkBufferTime;

    @Schema(description = "超额费用")
    private BigDecimal overtimeMoney;

    @Schema(description = "超额min")
    private String overtimeMin;

    @Schema(description = "单次扣款限额")
    private BigDecimal singleDeductionLimit;

    @Schema(description = "道闸", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "道闸不能为空")
    private Boolean isBrake;

    @Schema(description = "停车说明")
    private String parkExplain;

    @Schema(description = "站点描述")
    private String stationDescribe;

    @Schema(description = "站点服务设施")
    private Integer serviceSetup;

    @Schema(description = "周边基础设施")
    private Integer baseSetup;

    @Schema(description = "开放说明时间")
    private String openExplain;

    @Schema(description = "主入口图")
    private String imgMainEntrance;

    @Schema(description = "标志路劲")
    private String imgFlagPath;

    @Schema(description = "电站全景")
    private String imgFullView;

    @Schema(description = "电站特写")
    private String imgPilesFeature;

    @Schema(description = "其他图片")
    private String imgOther;

    @Schema(description = "资质")
    private String qualification;

    @Schema(description = "备注说明")
    private String remarks;

    @Schema(description = "是否启用电站", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否启用电站不能为空")
    private Boolean isEnableStart;

    @Schema(description = "客服电话")
    private String hotLine;

    @Schema(description = "站点code")
    private String stationCode;

    @Schema(description = "总电量")
    private BigDecimal sumPower;

    @Schema(description = "站点服务设施")
    private Integer stationServiceSets;

    @Schema(description = "单价关联id", example = "8778")
    private Long costTemplateId;

    @Schema(description = "场地属性", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "场地属性不能为空")
    private Boolean property;

    @Schema(description = "设备所属id", example = "17101")
    private String equipmentOwnerId;

}